前言

搭建一个自己的论坛是多么美好的一件事情,鉴于此,我们就开始用nodebb来搭建一个属于自己的论坛


设计

我们使用两个镜像,mongo和nodebb/docker.


步骤

安装docker

如果不知道怎么安装docker的,看我这篇文章{% post_link linux安装docker %}

拉取镜像

docker pull mongo && docker pull nodebb/docker

拉去成功后: 20200405134016

创建docker network

docker network create mongo-net

解释:该mongo-net是为了让nodebb和mongo数据库进行连接

初始化mongo容器,并连接上mongo-net网络

docker run -d --name db --restart always --network mongo-net -p 127.0.0.1:27017:27017 -v /root/mongo/db:/data/db mongo

解释: --restart always表示不管任何情况退出都自动重启 --network mongo-net表示把该容器连接上mongo-net网络 -p 127.0.0.1:27017:27017表示把容器27017端口映射到宿主机的27017端口,并且只能本地访问 -v /root/mongo/db:/data/db表示把容器中的数据放到宿主机的/root/mongo/db目录,这个目录没有会自动创建.

初始化nodebb容器,并连接上mongo-net网络

docker run -d --name forum --restart always --network mongo-net -p 4567:4567 nodebb/docker

查看是否连接到网络

docker network inspect mongo-net

20200405135448

打开nodebb初始页面进行配置http://qiud.zsyac.club:4567

20200405165135

注意:

  1. 写你自己的服务器地址和端口号
  2. 这个比较吃内存,最好1G,有时候出错就是内存不够
  3. 刚开始加载比较慢,耐心等等

成功后进入这个页面: 20200405165544 大功告成,剩下的就是自己来玩论坛了,可以参考官网


优化

虽然经过上面的步骤已经能正常玩论坛了,但是为了数据不丢失,我们可以定期把数据备份到git仓库,你甚至可以备份到多个仓库,从而确保数据不丢失,我这里以github做演示.

  1. 把本地数据文件夹初始化为一个git仓库,默认你已经安装了git,不知道怎么安装的看我这篇文章{% post_link linux安装git %}

    cd /root/mongo git init #空文件夹不能提交,所以要写个文件 touch readme.md && echo 'mongodb_data'>> readme.md git add -A git commit -m date +%Y%m%d%H%M%S

  2. 初始化你的个人信息,并配置公匙与密匙

    #配置个人信息 git config --global user.email "172601543@qq.com" git config --global user.name "qiudong" #生成公匙密匙 ssh-keygen -t 'rsa'

  3. 找到公匙文件,配置到github上面,公匙,密匙默认位置是/root/.ssh下面 20200405180904 20200405181050

  4. 创建一个远程仓库并和远程仓库关联,去github怎么创建我就不讲了,我直接从关联开始,我的github仓库是git@github.com:qiudong19901008/MongodbData.git

    #添加远程仓库位置 git remote add mongo git@github.com:qiudong19901008/MongodbData.git #推送到远程仓库 git push -uf mongo master

注意: 推送的时候要加上-uf,表示定位并且强制推送,覆盖掉远程仓库的文件,否则会推送失败

  1. 写一个脚本并测试能不能推送

我脚本位置在/root/syncData.sh,我的记录日志在/root/syncData.log

touch /root/syncData.sh
touch /root/syncData.log

脚本内容为:

#!/bin/bash
echo `date '+%Y-%m-%d %H:%M:%S'` >> /root/syncData.log
cd /root/mongo 
echo `git add -A` &>> /root/syncData.log
echo `git commit -m 'insignificance'` &>> /root/syncData.log
echo `git push` &>> /root/syncData.log

我解释下脚本内容:第一句话是把当前时间写道日志文件中.第二句话是进入我们本地仓库中.后面的语句是把数据推送到远程仓库,并且把推送的信息记录到日志文件中

赋予权限并测试

chmod +x syncData.sh
/root/syncData.sh

20200405183545

可以发现脚本能正常执行

  1. 把脚本放入crontab定时执行任务中 crontab是linux自带的定时任务程序,可以点我了解下

    #编辑任务,和使用vi编辑文件一样 crontab -e #设置半小时同步一次 1,30 * * * * /root/syncData.sh

结束语

到此为止,我们就不用再害怕数据丢失了,可以非常放心的玩我们的论坛了,可喜可贺!

THE END
推荐文章
  • 如何确保食物安全

  • npm install 时,只安装dependencies

  • xargs命令

  • WSL不能找到Docker Desktop

  • 修改wordpress默认后台登陆地址

  • 如何把pdf打印出书籍效果?

  • 引流平台之闲鱼

  • JS事件处理程序最佳实践

评论 共0条
开启精彩搜索

热门搜索

暂无

历史搜索

用户名/邮箱/手机号
密码
用户名
密码
重复密码
邮箱/手机号
验证码
发送验证码
59秒后可重发
注册
找回密码
邮箱/手机号
验证码
发送验证码
59秒后可重发
新密码
重复密码
请选择支付方式
余额支付

购买将消耗【10

微信支付
微信扫码支付 0 元
[ 04分50秒 ]
请使用微信扫一扫
扫描二维码支付
支付宝支付
支付宝扫码支付 0 元
[ 04分50秒 ]
请使用支付宝扫一扫
扫描二维码支付
已完成支付
未完成支付

请输入验证码

点击验证码可以刷新

你确认吗?

确认

2024年10月1日

0字

0字

2024年10月

0字

新增

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

0字

新增

0字

0字

0字

0字

新增

0字

0字